package com.atguigu.gmall.realtime;

/*
RegularExpression 正则表达式
是一个非常强大的专门用来处理文本的工具

java中如何使用正则表达式
    Pattern  把字符串编译成一个正则表达式   "a*b{3}"
    Matcher  使用正则表达式作用在字符串之后会得到一个Matcher对象

java在字符串中, 提供了四个方法, 支持正则表达式
matches
replaceAll
replaceFirst
split

[abc] 或a或b或c
[^abc] 非a非b非c
[a-z] 小写字母
[a-zA-Z] 所有字母
\w  w:word 单词字符串 数字字母下划线  [a-zA-Z0-9_]
\W  大小表示非    非单词字符串
\d  d:digital  [0-9]
\D  非数字
\s  s:space 空白字符串  空格 \r \n \t
\S  非空白字符串
. 任意字符 除了: \r和\n
\. 一个真正的点

^
    不在[]内部使用
    ^a 表示以a开头
$
    a$ 以a结尾

数量词
    a{2}  2个a
    a{2,} 至少2个a
    a{2,5} 至少2个a至多5个
    
    a+  a{1,} 至少一个
    a*  a{0,} 至少0个
    a?  a{0,1} 0个或1个
    
 () 捕获组
    
   

*/

import java.util.Arrays;

public class RegExpDemo {
    public static void main(String[] args) {
        /*String s = "28603071634";
        final boolean b = s.matches("1[3-9]\\d{9}");
        System.out.println(b);*/
    
        /*String s = "a_c@aaaaaaaaaaaaaa.com.cn";
        final boolean b = s.matches("\\w{3,15}@\\S+\\.(com|cn|org|edu|com\\.cn)");
        System.out.println(b);*/
        
        // 替换
        //        final String s = "我我我要要今天晚晚晚上去洗脚";
        //        System.out.println(s.replaceAll("\\d+", "z"));
        //        System.out.println(s.replaceFirst("[a-z]+", "z"));
        //        System.out.println(s.replaceAll("(.)\\1+", "$1"));
        // 切出来的空字符串前面和中间的保留, 末尾的自动丢弃
        final String s = "1111aa12b639322222";
        
        final String[] arr = s.split("\\d");  // ""
        System.out.println(Arrays.toString(arr));
    
        System.out.println('\r' + 0);
        System.out.println('\n' + 0);
        
    }
}
